package ee.rumba.iPhoneShop.artwork;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Vector;

public class Artwork {
  private String filename;
  Vector<ArtworkItem> artworkItems;
  byte[] artworkBytes;

  public Artwork(File artworkFile) throws FileNotFoundException, IOException {
    FileInputStream fin = new FileInputStream(artworkFile);
    this.filename = artworkFile.getName();
    if (filename.equals("Keyboard-StandardQWERTY.artwork") && artworkFile.length() == 0xCDF800L) {      
      initKeyboard_StandardQWERTY_ver102();
      artworkBytes = new byte[0xCDF800];
      int read = fin.read(artworkBytes);
      if (read != artworkBytes.length) {
        throw new IOException("Unable to read full artwork file");
      }
    } else if (filename.equals("Keyboard-Common.artwork") && artworkFile.length() == 0x61780L) {
      initKeyboard_Common_ver102();
      artworkBytes = new byte[0x61780];
      int read = fin.read(artworkBytes);
      if (read != artworkBytes.length) {
        throw new IOException("Unable to read full artwork file");
      }
    } else if (filename.equals("Other.artwork") && artworkFile.length() == 0x1d79c0L) {
      initOther_ver102();
      artworkBytes = new byte[0x1d79c0];
      int read = fin.read(artworkBytes);
      if (read != artworkBytes.length) {
        throw new IOException("Unable to read full artwork file");
      }
    } else if (filename.equals("Other.artwork") && artworkFile.length() == 0x3099c0L) {
      initOther_ver111();
      artworkBytes = new byte[0x3099c0];
      int read = fin.read(artworkBytes);
      if (read != artworkBytes.length) {
        throw new IOException("Unable to read full artwork file");
      }
    } else if (filename.equals("Keyboard-Japanese.artwork") && artworkFile.length() == 0x275800L) {
      initKeyboard_Japanese_ver111();
      artworkBytes = new byte[0x275800];
      int read = fin.read(artworkBytes);
      if (read != artworkBytes.length) {
        throw new IOException("Unable to read full artwork file");
      }
    } else if (filename.equals("Keyboard-Latin.artwork") && artworkFile.length() == 0xFAC800L) {
      initKeyboard_Latin_ver111();
      artworkBytes = new byte[0xFAC800];
      int read = fin.read(artworkBytes);
      if (read != artworkBytes.length) {
        throw new IOException("Unable to read full artwork file");
      }
    } else if (filename.equals("Keyboard-Common.artwork") && artworkFile.length() == 0xFE800L) {
      initKeyboard_Common_ver111();
      artworkBytes = new byte[0xFE800];
      int read = fin.read(artworkBytes);
      if (read != artworkBytes.length) {
        throw new IOException("Unable to read full artwork file");
      }      
    } else if (filename.equals("MobilePhonePackedImages.artwork") && artworkFile.length() == 0x15b500L) {
      initMobilePhonePackedImages_ver102();
      artworkBytes = new byte[0x15b500];
      int read = fin.read(artworkBytes);
      if (read != artworkBytes.length) {
        throw new IOException("Unable to read full artwork file");
      }
    } else {
      throw new IllegalArgumentException("Unsupported artwork type");
    }
  }

  public void importItems(File sourceDirectory) throws IOException {
    if (!sourceDirectory.exists() || !sourceDirectory.canWrite()) {
      throw new IOException("Unable to read and write directory " + sourceDirectory.getAbsolutePath());
    }
    int importCount = 0;
    for (ArtworkItem ai : artworkItems) {
      File f = new File(sourceDirectory.getAbsolutePath() + "/" + ai.getFilename());
      if (f.exists() && f.canRead()) {
        BufferedImage bi = ImageIO.read(f);
        if (bi.getHeight() == ai.getHeight() && bi.getWidth() == ai.getWidth()) {
          importImage(ai, bi);
          System.out.println(f.getAbsolutePath() + " imported");
          importCount++;
        } else {
          System.out.println("WARNING " + f.getAbsolutePath() + " is not valid to import");
        }
      }
    }
    System.out.println("imported " + importCount + " images");
    File targetFile = new File(sourceDirectory.getAbsolutePath() + "/" + filename);
    FileOutputStream fout = new FileOutputStream(targetFile);
    fout.write(artworkBytes);
    fout.flush();
    fout.close();
    System.out.println("New artwork file is stored to " + targetFile.getAbsolutePath());
  }

  private void importImage(ArtworkItem ai, BufferedImage bi) {
    for (int y = 0; y < ai.getHeight(); y++) {
      for (int x = 0; x < ai.getWidth(); x++) {
        int pixelPos = ai.getPos() + (y * ai.getMemWidth() + x) * 4;
        int color = bi.getRGB(x, y);
        int blue = color & 0xFF;
        int green = (color >> 8) & 0xFF;
        int red = (color >> 16) & 0xFF;
        int aplha = (color >> 24) & 0xFF;
        artworkBytes[pixelPos + 3] = (byte) ((color >> 24) & 0xFF);
        artworkBytes[pixelPos] = (byte) ((color) & 0xFF);
        artworkBytes[pixelPos + 1] = (byte) ((color >> 8) & 0xFF);
        artworkBytes[pixelPos + 2] = (byte) ((color >> 16) & 0xFF);
      }
    }
  }

  public void extractItems(File targetDirectory) throws IOException {
    if (!targetDirectory.exists() || !targetDirectory.canWrite()) {
      throw new IOException("Unable to write into directory " + targetDirectory.getAbsolutePath());
    }
    int extractCount = 0;
    for (ArtworkItem ai : artworkItems) {
      BufferedImage bi = extractImage(ai);
      File f = new File(targetDirectory.getAbsolutePath() + "/" + ai.getFilename());
      ImageIO.write(bi, "png", f);
      System.out.println(f.getAbsolutePath() + " extracted");
      extractCount++;
    }
    System.out.println("extracted " + extractCount + " images");
  }

  private BufferedImage extractImage(ArtworkItem ai) {
    BufferedImage image = new BufferedImage(ai.getWidth(), ai.getHeight(), BufferedImage.TYPE_INT_ARGB);
    for (int y = 0; y < ai.getHeight(); y++) {
      for (int x = 0; x < ai.getWidth(); x++) {
        int pixelPos = ai.getPos() + (y * ai.getMemWidth() + x) * 4;
        int color = artworkBytes[pixelPos + 3] & 0xFF;  // alpha
        color = color << 8;
        color |= artworkBytes[pixelPos + 2] & 0xFF;       // red
        color = color << 8;
        color |= artworkBytes[pixelPos + 1] & 0xFF;     // green
        color = color << 8;
        color |= artworkBytes[pixelPos + 0] & 0xFF;     // blue
        image.setRGB(x, y, color);
      }
    }
    return image;
  }

  private void initMobilePhonePackedImages_ver102() {
    artworkItems = new Vector<ArtworkItem>(31);
    artworkItems.add(new ArtworkItem(72, 71, 0x0, "MobilePhonePackedImages-1.png"));
    artworkItems.add(new ArtworkItem(40, 50, 0x5000, "MobilePhonePackedImages-2.png"));
    artworkItems.add(new ArtworkItem(72, 71, 0x7000, "MobilePhonePackedImages-3.png"));
    artworkItems.add(new ArtworkItem(40, 50, 0xc000, "MobilePhonePackedImages-4.png"));
    artworkItems.add(new ArtworkItem(40, 50, 0xe000, "MobilePhonePackedImages-5.png"));
    artworkItems.add(new ArtworkItem(72, 71, 0x10000, "MobilePhonePackedImages-6.png"));
    artworkItems.add(new ArtworkItem(96, 116, 0x15000, "MobilePhonePackedImages-7.png"));
    artworkItems.add(new ArtworkItem(96, 116, 0x20000, "MobilePhonePackedImages-8.png"));
    artworkItems.add(new ArtworkItem(104, 108, 0x2b000, "MobilePhonePackedImages-9.png"));
    artworkItems.add(new ArtworkItem(96, 116, 0x36000, "MobilePhonePackedImages-10.png"));
    artworkItems.add(new ArtworkItem(96, 116, 0x41000, "MobilePhonePackedImages-11.png"));
    artworkItems.add(new ArtworkItem(104, 118, 0x4c000, "MobilePhonePackedImages-12.png"));
    artworkItems.add(new ArtworkItem(96, 116, 0x58000, "MobilePhonePackedImages-13.png"));
    artworkItems.add(new ArtworkItem(96, 116, 0x63000, "MobilePhonePackedImages-14.png"));
    artworkItems.add(new ArtworkItem(104, 108, 0x6e000, "MobilePhonePackedImages-15.png"));
    artworkItems.add(new ArtworkItem(96, 116, 0x79000, "MobilePhonePackedImages-16.png"));
    artworkItems.add(new ArtworkItem(96, 116, 0x84000, "MobilePhonePackedImages-17.png"));
    artworkItems.add(new ArtworkItem(104, 118, 0x8f000, "MobilePhonePackedImages-18.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0x9b000, "MobilePhonePackedImages-19.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0x9d000, "MobilePhonePackedImages-20.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0x9f000, "MobilePhonePackedImages-21.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0xa1000, "MobilePhonePackedImages-22.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0xa3000, "MobilePhonePackedImages-23.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0xa5000, "MobilePhonePackedImages-24.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0xa7000, "MobilePhonePackedImages-25.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0xa9000, "MobilePhonePackedImages-26.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0xab000, "MobilePhonePackedImages-27.png"));
    artworkItems.add(new ArtworkItem(48, 42, 0xad000, "MobilePhonePackedImages-28.png"));
    artworkItems.add(new ArtworkItem(8, 128, 0xaf000, "MobilePhonePackedImages-29.png"));
    artworkItems.add(new ArtworkItem(320, 273, 0xb0000, "MobilePhonePackedImages-30.png"));
    artworkItems.add(new ArtworkItem(320, 273, 0x106000, "MobilePhonePackedImages-31.png"));
  }

  private void initOther_ver102() {
    artworkItems = new Vector<ArtworkItem>(332);
    artworkItems.add(new ArtworkItem(16, 20, 0x0, "Other-ver102_0.png"));
    artworkItems.add(new ArtworkItem(16, 20, 0x1000, "Other-ver102_1.png"));
    artworkItems.add(new ArtworkItem(1, 222, 0x2000, "Other-ver102_2.png"));
    artworkItems.add(new ArtworkItem(6, 12, 0x4000, "Other-ver102_3.png"));
    artworkItems.add(new ArtworkItem(6, 12, 0x5000, "Other-ver102_4.png"));
    artworkItems.add(new ArtworkItem(6, 12, 0x6000, "Other-ver102_5.png"));
    artworkItems.add(new ArtworkItem(6, 12, 0x7000, "Other-ver102_6.png"));
    artworkItems.add(new ArtworkItem(9, 18, 0x8000, "Other-ver102_7.png"));
    artworkItems.add(new ArtworkItem(9, 18, 0x9000, "Other-ver102_8.png"));
    artworkItems.add(new ArtworkItem(9, 18, 0xa000, "Other-ver102_9.png"));
    artworkItems.add(new ArtworkItem(9, 18, 0xb000, "Other-ver102_10.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0xc000, "Other-ver102_11.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0xd000, "Other-ver102_12.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0xe000, "Other-ver102_13.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0xf000, "Other-ver102_14.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x10000, "Other-ver102_15.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x12000, "Other-ver102_16.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x13000, "Other-ver102_17.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x14000, "Other-ver102_18.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x15000, "Other-ver102_19.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x16000, "Other-ver102_20.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x17000, "Other-ver102_21.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x19000, "Other-ver102_22.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x1a000, "Other-ver102_23.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x1b000, "Other-ver102_24.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x1c000, "Other-ver102_25.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x1d000, "Other-ver102_26.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x1e000, "Other-ver102_27.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x20000, "Other-ver102_28.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x21000, "Other-ver102_29.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x22000, "Other-ver102_30.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x23000, "Other-ver102_31.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x24000, "Other-ver102_32.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x25000, "Other-ver102_33.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x26000, "Other-ver102_34.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x27000, "Other-ver102_35.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x28000, "Other-ver102_36.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x29000, "Other-ver102_37.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x2a000, "Other-ver102_38.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x2b000, "Other-ver102_39.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x2c000, "Other-ver102_40.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x2d000, "Other-ver102_41.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x2e000, "Other-ver102_42.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x2f000, "Other-ver102_43.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x30000, "Other-ver102_44.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x31000, "Other-ver102_45.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x33000, "Other-ver102_46.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x34000, "Other-ver102_47.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x35000, "Other-ver102_48.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x36000, "Other-ver102_49.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x37000, "Other-ver102_50.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x38000, "Other-ver102_51.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x3a000, "Other-ver102_52.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x3b000, "Other-ver102_53.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x3c000, "Other-ver102_54.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x3d000, "Other-ver102_55.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x3e000, "Other-ver102_56.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x3f000, "Other-ver102_57.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x41000, "Other-ver102_58.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x42000, "Other-ver102_59.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x43000, "Other-ver102_60.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x44000, "Other-ver102_61.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x45000, "Other-ver102_62.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x46000, "Other-ver102_63.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x48000, "Other-ver102_64.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x49000, "Other-ver102_65.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x4a000, "Other-ver102_66.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x4b000, "Other-ver102_67.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x4c000, "Other-ver102_68.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x4d000, "Other-ver102_69.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x4f000, "Other-ver102_70.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x50000, "Other-ver102_71.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x51000, "Other-ver102_72.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x52000, "Other-ver102_73.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x53000, "Other-ver102_74.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x54000, "Other-ver102_75.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x56000, "Other-ver102_76.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x57000, "Other-ver102_77.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x58000, "Other-ver102_78.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x59000, "Other-ver102_79.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x5a000, "Other-ver102_80.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x5b000, "Other-ver102_81.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x5d000, "Other-ver102_82.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x5e000, "Other-ver102_83.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x5f000, "Other-ver102_84.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x60000, "Other-ver102_85.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x61000, "Other-ver102_86.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x62000, "Other-ver102_87.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x64000, "Other-ver102_88.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x65000, "Other-ver102_89.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x66000, "Other-ver102_90.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x67000, "Other-ver102_91.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x68000, "Other-ver102_92.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x69000, "Other-ver102_93.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x6b000, "Other-ver102_94.png"));
    artworkItems.add(new ArtworkItem(1, 22, 0x6c000, "Other-ver102_95.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x6d000, "Other-ver102_96.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x6f000, "Other-ver102_97.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x71000, "Other-ver102_98.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x73000, "Other-ver102_99.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x75000, "Other-ver102_100.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x77000, "Other-ver102_101.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x79000, "Other-ver102_102.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x7b000, "Other-ver102_103.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x7c000, "Other-ver102_104.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x7e000, "Other-ver102_105.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x80000, "Other-ver102_106.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x82000, "Other-ver102_107.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x84000, "Other-ver102_108.png"));
    artworkItems.add(new ArtworkItem(280, 2, 0x86000, "Other-ver102_109.png"));
    artworkItems.add(new ArtworkItem(3, 31, 0x87000, "Other-ver102_110.png"));
    artworkItems.add(new ArtworkItem(22, 23, 0x88000, "Other-ver102_111.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x89000, "Other-ver102_112.png"));
    artworkItems.add(new ArtworkItem(1, 49, 0x8a000, "Other-ver102_113.png"));
    artworkItems.add(new ArtworkItem(11, 24, 0x8b000, "Other-ver102_114.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x8c000, "Other-ver102_115.png"));
    artworkItems.add(new ArtworkItem(1, 32, 0x8d000, "Other-ver102_116.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x8e000, "Other-ver102_117.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x8f000, "Other-ver102_118.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x91000, "Other-ver102_119.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x93000, "Other-ver102_120.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x95000, "Other-ver102_121.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x97000, "Other-ver102_122.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x99000, "Other-ver102_123.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x9b000, "Other-ver102_124.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x9d000, "Other-ver102_125.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x9f000, "Other-ver102_126.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xa1000, "Other-ver102_127.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xa3000, "Other-ver102_128.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xa5000, "Other-ver102_129.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xa7000, "Other-ver102_130.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xa9000, "Other-ver102_131.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xab000, "Other-ver102_132.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xad000, "Other-ver102_133.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xaf000, "Other-ver102_134.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xb1000, "Other-ver102_135.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xb3000, "Other-ver102_136.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xb5000, "Other-ver102_137.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xb7000, "Other-ver102_138.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xb9000, "Other-ver102_139.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xbb000, "Other-ver102_140.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xbd000, "Other-ver102_141.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xbf000, "Other-ver102_142.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xc1000, "Other-ver102_143.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xc3000, "Other-ver102_144.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xc5000, "Other-ver102_145.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xc7000, "Other-ver102_146.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xc9000, "Other-ver102_147.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0xcb000, "Other-ver102_148.png"));
    artworkItems.add(new ArtworkItem(18, 19, 0xcd000, "Other-ver102_149.png"));
    artworkItems.add(new ArtworkItem(11, 24, 0xce000, "Other-ver102_150.png"));
    artworkItems.add(new ArtworkItem(11, 24, 0xcf000, "Other-ver102_151.png"));
    artworkItems.add(new ArtworkItem(16, 17, 0xd0000, "Other-ver102_152.png"));
    artworkItems.add(new ArtworkItem(100, 100, 0xd1000, "Other-ver102_153.png"));
    artworkItems.add(new ArtworkItem(7, 7, 0xdc000, "Other-ver102_154.png"));
    artworkItems.add(new ArtworkItem(18, 19, 0xdd000, "Other-ver102_155.png"));
    artworkItems.add(new ArtworkItem(18, 19, 0xde000, "Other-ver102_156.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0xdf000, "Other-ver102_157.png"));
    artworkItems.add(new ArtworkItem(1, 57, 0xe0000, "Other-ver102_158.png"));
    artworkItems.add(new ArtworkItem(41, 70, 0xe1000, "Other-ver102_159.png"));
    artworkItems.add(new ArtworkItem(17, 57, 0xe5000, "Other-ver102_160.png"));
    artworkItems.add(new ArtworkItem(17, 57, 0xe7000, "Other-ver102_161.png"));
    artworkItems.add(new ArtworkItem(41, 70, 0xe9000, "Other-ver102_162.png"));
    artworkItems.add(new ArtworkItem(3, 19, 0xed000, "Other-ver102_163.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0xee000, "Other-ver102_164.png"));
    artworkItems.add(new ArtworkItem(1, 96, 0xef000, "Other-ver102_165.png"));
    artworkItems.add(new ArtworkItem(13, 16, 0xf0000, "Other-ver102_166.png"));
    artworkItems.add(new ArtworkItem(23, 19, 0xf1000, "Other-ver102_167.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0xf2000, "Other-ver102_168.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0xf3000, "Other-ver102_169.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0xf4000, "Other-ver102_170.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0xf5000, "Other-ver102_171.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0xf6000, "Other-ver102_172.png"));
    artworkItems.add(new ArtworkItem(1, 74, 0xf7000, "Other-ver102_173.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0xf8000, "Other-ver102_174.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0xf9000, "Other-ver102_175.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0xfa000, "Other-ver102_176.png"));
    artworkItems.add(new ArtworkItem(1, 74, 0xfb000, "Other-ver102_177.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0xfc000, "Other-ver102_178.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0xfd000, "Other-ver102_179.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0xfe000, "Other-ver102_180.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0xff000, "Other-ver102_181.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x100000, "Other-ver102_182.png"));
    artworkItems.add(new ArtworkItem(1, 74, 0x101000, "Other-ver102_183.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x102000, "Other-ver102_184.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x103000, "Other-ver102_185.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x104000, "Other-ver102_186.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x105000, "Other-ver102_187.png"));
    artworkItems.add(new ArtworkItem(6, 6, 0x106000, "Other-ver102_188.png"));
    artworkItems.add(new ArtworkItem(6, 6, 0x107000, "Other-ver102_189.png"));
    artworkItems.add(new ArtworkItem(62, 52, 0x108000, "Other-ver102_190.png"));
    artworkItems.add(new ArtworkItem(11, 53, 0x10c000, "Other-ver102_191.png"));
    artworkItems.add(new ArtworkItem(15, 39, 0x10d000, "Other-ver102_192.png"));
    artworkItems.add(new ArtworkItem(18, 18, 0x10e000, "Other-ver102_193.png"));
    artworkItems.add(new ArtworkItem(1, 180, 0x10f000, "Other-ver102_194.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x111000, "Other-ver102_195.png"));
    artworkItems.add(new ArtworkItem(15, 180, 0x113000, "Other-ver102_196.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x116000, "Other-ver102_197.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x11a000, "Other-ver102_198.png"));
    artworkItems.add(new ArtworkItem(1, 180, 0x11e000, "Other-ver102_199.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x120000, "Other-ver102_200.png"));
    artworkItems.add(new ArtworkItem(15, 180, 0x122000, "Other-ver102_201.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x125000, "Other-ver102_202.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x129000, "Other-ver102_203.png"));
    artworkItems.add(new ArtworkItem(9, 44, 0x12d000, "Other-ver102_204.png"));
    artworkItems.add(new ArtworkItem(1, 48, 0x12e000, "Other-ver102_205.png"));
    artworkItems.add(new ArtworkItem(1, 62, 0x12f000, "Other-ver102_206.png"));
    artworkItems.add(new ArtworkItem(1, 180, 0x130000, "Other-ver102_207.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x132000, "Other-ver102_208.png"));
    artworkItems.add(new ArtworkItem(9, 180, 0x134000, "Other-ver102_209.png"));
    artworkItems.add(new ArtworkItem(9, 216, 0x137000, "Other-ver102_210.png"));
    artworkItems.add(new ArtworkItem(7, 1, 0x13b000, "Other-ver102_211.png"));
    artworkItems.add(new ArtworkItem(19, 46, 0x13c000, "Other-ver102_212.png"));
    artworkItems.add(new ArtworkItem(19, 46, 0x13e000, "Other-ver102_213.png"));
    artworkItems.add(new ArtworkItem(11, 14, 0x140000, "Other-ver102_214.png"));
    artworkItems.add(new ArtworkItem(284, 62, 0x141000, "Other-ver102_215.png"));
    artworkItems.add(new ArtworkItem(11, 43, 0x153000, "Other-ver102_216.png"));
    artworkItems.add(new ArtworkItem(11, 43, 0x154000, "Other-ver102_217.png"));
    artworkItems.add(new ArtworkItem(11, 43, 0x155000, "Other-ver102_218.png"));
    artworkItems.add(new ArtworkItem(14, 14, 0x156000, "Other-ver102_219.png"));
    artworkItems.add(new ArtworkItem(13, 44, 0x157000, "Other-ver102_220.png"));
    artworkItems.add(new ArtworkItem(13, 44, 0x158000, "Other-ver102_221.png"));
    artworkItems.add(new ArtworkItem(14, 14, 0x159000, "Other-ver102_222.png"));
    artworkItems.add(new ArtworkItem(15, 11, 0x15a000, "Other-ver102_223.png"));
    artworkItems.add(new ArtworkItem(14, 14, 0x15b000, "Other-ver102_224.png"));
    artworkItems.add(new ArtworkItem(29, 29, 0x15c000, "Other-ver102_225.png"));
    artworkItems.add(new ArtworkItem(13, 3, 0x15d000, "Other-ver102_226.png"));
    artworkItems.add(new ArtworkItem(29, 29, 0x15e000, "Other-ver102_227.png"));
    artworkItems.add(new ArtworkItem(17, 33, 0x15f000, "Other-ver102_228.png"));
    artworkItems.add(new ArtworkItem(17, 33, 0x160000, "Other-ver102_229.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x161000, "Other-ver102_230.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x162000, "Other-ver102_231.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x163000, "Other-ver102_232.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x164000, "Other-ver102_233.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x165000, "Other-ver102_234.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x166000, "Other-ver102_235.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x167000, "Other-ver102_236.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x168000, "Other-ver102_237.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x169000, "Other-ver102_238.png"));
    artworkItems.add(new ArtworkItem(5, 5, 0x16a000, "Other-ver102_239.png"));
    artworkItems.add(new ArtworkItem(7, 7, 0x16b000, "Other-ver102_240.png"));
    artworkItems.add(new ArtworkItem(5, 5, 0x16c000, "Other-ver102_241.png"));
    artworkItems.add(new ArtworkItem(54, 54, 0x16d000, "Other-ver102_242.png"));
    artworkItems.add(new ArtworkItem(1, 30, 0x170000, "Other-ver102_243.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x171000, "Other-ver102_244.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x172000, "Other-ver102_245.png"));
    artworkItems.add(new ArtworkItem(1, 9, 0x173000, "Other-ver102_246.png"));
    artworkItems.add(new ArtworkItem(1, 8, 0x174000, "Other-ver102_247.png"));
    artworkItems.add(new ArtworkItem(4, 8, 0x175000, "Other-ver102_248.png"));
    artworkItems.add(new ArtworkItem(4, 8, 0x176000, "Other-ver102_249.png"));
    artworkItems.add(new ArtworkItem(17, 18, 0x177000, "Other-ver102_250.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x178000, "Other-ver102_251.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x179000, "Other-ver102_252.png"));
    artworkItems.add(new ArtworkItem(1, 9, 0x17a000, "Other-ver102_253.png"));
    artworkItems.add(new ArtworkItem(15, 15, 0x17b000, "Other-ver102_254.png"));
    artworkItems.add(new ArtworkItem(17, 31, 0x17c000, "Other-ver102_255.png"));
    artworkItems.add(new ArtworkItem(17, 31, 0x17d000, "Other-ver102_256.png"));
    artworkItems.add(new ArtworkItem(17, 32, 0x17e000, "Other-ver102_257.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x17f000, "Other-ver102_258.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x180000, "Other-ver102_259.png"));
    artworkItems.add(new ArtworkItem(1, 32, 0x181000, "Other-ver102_260.png"));
    artworkItems.add(new ArtworkItem(17, 31, 0x182000, "Other-ver102_261.png"));
    artworkItems.add(new ArtworkItem(17, 31, 0x183000, "Other-ver102_262.png"));
    artworkItems.add(new ArtworkItem(17, 32, 0x184000, "Other-ver102_263.png"));
    artworkItems.add(new ArtworkItem(1, 23, 0x185000, "Other-ver102_264.png"));
    artworkItems.add(new ArtworkItem(1, 23, 0x186000, "Other-ver102_265.png"));
    artworkItems.add(new ArtworkItem(8, 10, 0x187000, "Other-ver102_266.png"));
    artworkItems.add(new ArtworkItem(13, 30, 0x188000, "Other-ver102_267.png"));
    artworkItems.add(new ArtworkItem(1, 30, 0x189000, "Other-ver102_268.png"));
    artworkItems.add(new ArtworkItem(6, 30, 0x18a000, "Other-ver102_269.png"));
    artworkItems.add(new ArtworkItem(6, 30, 0x18b000, "Other-ver102_270.png"));
    artworkItems.add(new ArtworkItem(1, 30, 0x18c000, "Other-ver102_271.png"));
    artworkItems.add(new ArtworkItem(1, 30, 0x18d000, "Other-ver102_272.png"));
    artworkItems.add(new ArtworkItem(21, 44, 0x18e000, "Other-ver102_273.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x190000, "Other-ver102_274.png"));
    artworkItems.add(new ArtworkItem(10, 44, 0x191000, "Other-ver102_275.png"));
    artworkItems.add(new ArtworkItem(10, 44, 0x192000, "Other-ver102_276.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x193000, "Other-ver102_277.png"));
    artworkItems.add(new ArtworkItem(6, 44, 0x194000, "Other-ver102_278.png"));
    artworkItems.add(new ArtworkItem(6, 44, 0x195000, "Other-ver102_279.png"));
    artworkItems.add(new ArtworkItem(21, 44, 0x196000, "Other-ver102_280.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x198000, "Other-ver102_281.png"));
    artworkItems.add(new ArtworkItem(10, 44, 0x199000, "Other-ver102_282.png"));
    artworkItems.add(new ArtworkItem(10, 44, 0x19a000, "Other-ver102_283.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x19b000, "Other-ver102_284.png"));
    artworkItems.add(new ArtworkItem(6, 44, 0x19c000, "Other-ver102_285.png"));
    artworkItems.add(new ArtworkItem(6, 44, 0x19d000, "Other-ver102_286.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x19e000, "Other-ver102_287.png"));
    artworkItems.add(new ArtworkItem(1, 9, 0x19f000, "Other-ver102_288.png"));
    artworkItems.add(new ArtworkItem(23, 23, 0x1a0000, "Other-ver102_289.png"));
    artworkItems.add(new ArtworkItem(23, 23, 0x1a1000, "Other-ver102_290.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x1a2000, "Other-ver102_291.png"));
    artworkItems.add(new ArtworkItem(1, 9, 0x1a3000, "Other-ver102_292.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x1a4000, "Other-ver102_293.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x1a5000, "Other-ver102_294.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x1a6000, "Other-ver102_295.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x1a7000, "Other-ver102_296.png"));
    artworkItems.add(new ArtworkItem(8, 27, 0x1a8000, "Other-ver102_297.png"));
    artworkItems.add(new ArtworkItem(8, 27, 0x1a9000, "Other-ver102_298.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x1aa000, "Other-ver102_299.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x1ab000, "Other-ver102_300.png"));
    artworkItems.add(new ArtworkItem(8, 27, 0x1ac000, "Other-ver102_301.png"));
    artworkItems.add(new ArtworkItem(8, 27, 0x1ad000, "Other-ver102_302.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x1ae000, "Other-ver102_303.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x1af000, "Other-ver102_304.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x1b0000, "Other-ver102_305.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x1b1000, "Other-ver102_306.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x1b2000, "Other-ver102_307.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x1b3000, "Other-ver102_308.png"));
    artworkItems.add(new ArtworkItem(3, 19, 0x1b4000, "Other-ver102_309.png"));
    artworkItems.add(new ArtworkItem(3, 19, 0x1b5000, "Other-ver102_310.png"));
    artworkItems.add(new ArtworkItem(19, 17, 0x1b6000, "Other-ver102_311.png"));
    artworkItems.add(new ArtworkItem(10, 13, 0x1b7000, "Other-ver102_312.png"));
    artworkItems.add(new ArtworkItem(29, 31, 0x1b8000, "Other-ver102_313.png"));
    artworkItems.add(new ArtworkItem(29, 31, 0x1b9000, "Other-ver102_314.png"));
    artworkItems.add(new ArtworkItem(10, 13, 0x1ba000, "Other-ver102_315.png"));
    artworkItems.add(new ArtworkItem(1, 43, 0x1bb000, "Other-ver102_316.png"));
    artworkItems.add(new ArtworkItem(1, 43, 0x1bc000, "Other-ver102_317.png"));
    artworkItems.add(new ArtworkItem(1, 43, 0x1bd000, "Other-ver102_318.png"));
    artworkItems.add(new ArtworkItem(1, 43, 0x1be000, "Other-ver102_319.png"));
    artworkItems.add(new ArtworkItem(19, 19, 0x1bf000, "Other-ver102_320.png"));
    artworkItems.add(new ArtworkItem(19, 19, 0x1c0000, "Other-ver102_321.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x1c1000, "Other-ver102_322.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x1c3000, "Other-ver102_323.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x1c7000, "Other-ver102_324.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x1c9000, "Other-ver102_325.png"));
    artworkItems.add(new ArtworkItem(9, 44, 0x1cd000, "Other-ver102_326.png"));
    artworkItems.add(new ArtworkItem(1, 48, 0x1ce000, "Other-ver102_327.png"));
    artworkItems.add(new ArtworkItem(1, 62, 0x1cf000, "Other-ver102_328.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x1d0000, "Other-ver102_329.png"));
    artworkItems.add(new ArtworkItem(9, 216, 0x1d2000, "Other-ver102_330.png"));
    artworkItems.add(new ArtworkItem(13, 13, 0x1d6000, "Other-ver102_331.png"));
  }
  private void initKeyboard_Common_ver102() {
    artworkItems = new Vector<ArtworkItem>(11);
    artworkItems.add(new ArtworkItem(148, 148, 0x0, "Keyboard_Common-ver102_0.png"));
    artworkItems.add(new ArtworkItem(148, 148, 0x16000, "Keyboard_Common-ver102_1.png"));
    artworkItems.add(new ArtworkItem(8, 8, 0x2c000, "Keyboard_Common-ver102_2.png"));
    artworkItems.add(new ArtworkItem(16, 31, 0x2d000, "Keyboard_Common-ver102_3.png"));
    artworkItems.add(new ArtworkItem(16, 31, 0x2e000, "Keyboard_Common-ver102_4.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x2f000, "Keyboard_Common-ver102_5.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x30000, "Keyboard_Common-ver102_6.png"));
    artworkItems.add(new ArtworkItem(127, 127, 0x31000, "Keyboard_Common-ver102_7.png"));
    artworkItems.add(new ArtworkItem(127, 127, 0x41000, "Keyboard_Common-ver102_8.png"));
    artworkItems.add(new ArtworkItem(127, 127, 0x51000, "Keyboard_Common-ver102_9.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x61000, "Keyboard_Common-ver102_10.png"));
  }
  private void initKeyboard_StandardQWERTY_ver102() {
    artworkItems = new Vector<ArtworkItem>(107);
    artworkItems.add(new ArtworkItem(320, 216, 0x0, "Keyboard_StandardQWERTY-ver102_0.png"));
    artworkItems.add(new ArtworkItem(83, 120, 0x44000, "Keyboard_StandardQWERTY-ver102_1.png"));
    artworkItems.add(new ArtworkItem(91, 120, 0x4f000, "Keyboard_StandardQWERTY-ver102_2.png"));
    artworkItems.add(new ArtworkItem(88, 120, 0x5b000, "Keyboard_StandardQWERTY-ver102_3.png"));
    artworkItems.add(new ArtworkItem(79, 120, 0x66000, "Keyboard_StandardQWERTY-ver102_4.png"));
    artworkItems.add(new ArtworkItem(114, 125, 0x70000, "Keyboard_StandardQWERTY-ver102_5.png"));
    artworkItems.add(new ArtworkItem(79, 126, 0x7f000, "Keyboard_StandardQWERTY-ver102_6.png"));
    artworkItems.add(new ArtworkItem(78, 126, 0x89000, "Keyboard_StandardQWERTY-ver102_7.png"));
    artworkItems.add(new ArtworkItem(220, 500, 0x93000, "Keyboard_StandardQWERTY-ver102_8.png"));
    artworkItems.add(new ArtworkItem(88, 750, 0x101000, "Keyboard_StandardQWERTY-ver102_9.png"));
    artworkItems.add(new ArtworkItem(88, 750, 0x142000, "Keyboard_StandardQWERTY-ver102_10.png"));
    artworkItems.add(new ArtworkItem(176, 500, 0x183000, "Keyboard_StandardQWERTY-ver102_11.png"));
    artworkItems.add(new ArtworkItem(132, 500, 0x1d9000, "Keyboard_StandardQWERTY-ver102_12.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x21c000, "Keyboard_StandardQWERTY-ver102_13.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x271000, "Keyboard_StandardQWERTY-ver102_14.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x2c6000, "Keyboard_StandardQWERTY-ver102_15.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x30a000, "Keyboard_StandardQWERTY-ver102_16.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x34e000, "Keyboard_StandardQWERTY-ver102_17.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x392000, "Keyboard_StandardQWERTY-ver102_18.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x3d6000, "Keyboard_StandardQWERTY-ver102_19.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x41a000, "Keyboard_StandardQWERTY-ver102_20.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x45e000, "Keyboard_StandardQWERTY-ver102_21.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x4a2000, "Keyboard_StandardQWERTY-ver102_22.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x4e6000, "Keyboard_StandardQWERTY-ver102_23.png"));
    artworkItems.add(new ArtworkItem(103, 120, 0x53b000, "Keyboard_StandardQWERTY-ver102_24.png"));
    artworkItems.add(new ArtworkItem(115, 120, 0x548000, "Keyboard_StandardQWERTY-ver102_25.png"));
    artworkItems.add(new ArtworkItem(126, 120, 0x557000, "Keyboard_StandardQWERTY-ver102_26.png"));
    artworkItems.add(new ArtworkItem(99, 120, 0x566000, "Keyboard_StandardQWERTY-ver102_27.png"));
    artworkItems.add(new ArtworkItem(110, 126, 0x573000, "Keyboard_StandardQWERTY-ver102_28.png"));
    artworkItems.add(new ArtworkItem(85, 126, 0x581000, "Keyboard_StandardQWERTY-ver102_29.png"));
    artworkItems.add(new ArtworkItem(85, 126, 0x58c000, "Keyboard_StandardQWERTY-ver102_30.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x597000, "Keyboard_StandardQWERTY-ver102_31.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x59c000, "Keyboard_StandardQWERTY-ver102_32.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5a1000, "Keyboard_StandardQWERTY-ver102_33.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5a6000, "Keyboard_StandardQWERTY-ver102_34.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5ab000, "Keyboard_StandardQWERTY-ver102_35.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5b0000, "Keyboard_StandardQWERTY-ver102_36.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5b5000, "Keyboard_StandardQWERTY-ver102_37.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5ba000, "Keyboard_StandardQWERTY-ver102_38.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5bf000, "Keyboard_StandardQWERTY-ver102_39.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5c4000, "Keyboard_StandardQWERTY-ver102_40.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5c9000, "Keyboard_StandardQWERTY-ver102_41.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5ce000, "Keyboard_StandardQWERTY-ver102_42.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5d3000, "Keyboard_StandardQWERTY-ver102_43.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5d8000, "Keyboard_StandardQWERTY-ver102_44.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5dd000, "Keyboard_StandardQWERTY-ver102_45.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5e2000, "Keyboard_StandardQWERTY-ver102_46.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5e7000, "Keyboard_StandardQWERTY-ver102_47.png"));
    artworkItems.add(new ArtworkItem(98, 44, 0x5ec000, "Keyboard_StandardQWERTY-ver102_48.png"));
    artworkItems.add(new ArtworkItem(76, 45, 0x5f1000, "Keyboard_StandardQWERTY-ver102_49.png"));
    artworkItems.add(new ArtworkItem(76, 45, 0x5f5000, "Keyboard_StandardQWERTY-ver102_50.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x5f9000, "Keyboard_StandardQWERTY-ver102_51.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x64e000, "Keyboard_StandardQWERTY-ver102_52.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x692000, "Keyboard_StandardQWERTY-ver102_53.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x6d6000, "Keyboard_StandardQWERTY-ver102_54.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x71a000, "Keyboard_StandardQWERTY-ver102_55.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x75e000, "Keyboard_StandardQWERTY-ver102_56.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x7a2000, "Keyboard_StandardQWERTY-ver102_57.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x7e6000, "Keyboard_StandardQWERTY-ver102_58.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x82a000, "Keyboard_StandardQWERTY-ver102_59.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x86e000, "Keyboard_StandardQWERTY-ver102_60.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x872000, "Keyboard_StandardQWERTY-ver102_61.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x876000, "Keyboard_StandardQWERTY-ver102_62.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x87a000, "Keyboard_StandardQWERTY-ver102_63.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x87e000, "Keyboard_StandardQWERTY-ver102_64.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x882000, "Keyboard_StandardQWERTY-ver102_65.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x886000, "Keyboard_StandardQWERTY-ver102_66.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x88a000, "Keyboard_StandardQWERTY-ver102_67.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x88e000, "Keyboard_StandardQWERTY-ver102_68.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x892000, "Keyboard_StandardQWERTY-ver102_69.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x896000, "Keyboard_StandardQWERTY-ver102_70.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x89a000, "Keyboard_StandardQWERTY-ver102_71.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x89e000, "Keyboard_StandardQWERTY-ver102_72.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8a2000, "Keyboard_StandardQWERTY-ver102_73.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8a6000, "Keyboard_StandardQWERTY-ver102_74.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8aa000, "Keyboard_StandardQWERTY-ver102_75.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8ae000, "Keyboard_StandardQWERTY-ver102_76.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8b2000, "Keyboard_StandardQWERTY-ver102_77.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8b6000, "Keyboard_StandardQWERTY-ver102_78.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8ba000, "Keyboard_StandardQWERTY-ver102_79.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8be000, "Keyboard_StandardQWERTY-ver102_80.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8c2000, "Keyboard_StandardQWERTY-ver102_81.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8c6000, "Keyboard_StandardQWERTY-ver102_82.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8ca000, "Keyboard_StandardQWERTY-ver102_83.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8ce000, "Keyboard_StandardQWERTY-ver102_84.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8d2000, "Keyboard_StandardQWERTY-ver102_85.png"));
    artworkItems.add(new ArtworkItem(80, 46, 0x8d6000, "Keyboard_StandardQWERTY-ver102_86.png"));
    artworkItems.add(new ArtworkItem(40, 41, 0x8da000, "Keyboard_StandardQWERTY-ver102_87.png"));
    artworkItems.add(new ArtworkItem(40, 41, 0x8dc000, "Keyboard_StandardQWERTY-ver102_88.png"));
    artworkItems.add(new ArtworkItem(40, 41, 0x8de000, "Keyboard_StandardQWERTY-ver102_89.png"));
    artworkItems.add(new ArtworkItem(40, 41, 0x8e0000, "Keyboard_StandardQWERTY-ver102_90.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x8e2000, "Keyboard_StandardQWERTY-ver102_91.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x926000, "Keyboard_StandardQWERTY-ver102_92.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x96a000, "Keyboard_StandardQWERTY-ver102_93.png"));
    artworkItems.add(new ArtworkItem(4, 36, 0x9ae000, "Keyboard_StandardQWERTY-ver102_94.png"));
    artworkItems.add(new ArtworkItem(4, 36, 0x9af000, "Keyboard_StandardQWERTY-ver102_95.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x9b0000, "Keyboard_StandardQWERTY-ver102_96.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x9f4000, "Keyboard_StandardQWERTY-ver102_97.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xa38000, "Keyboard_StandardQWERTY-ver102_98.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0xa7c000, "Keyboard_StandardQWERTY-ver102_99.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0xad1000, "Keyboard_StandardQWERTY-ver102_100.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xb26000, "Keyboard_StandardQWERTY-ver102_101.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xb6a000, "Keyboard_StandardQWERTY-ver102_102.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0xbae000, "Keyboard_StandardQWERTY-ver102_103.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0xc03000, "Keyboard_StandardQWERTY-ver102_104.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xc58000, "Keyboard_StandardQWERTY-ver102_105.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xc9c000, "Keyboard_StandardQWERTY-ver102_106.png"));
  }

  private void initOther_ver111() {
    artworkItems = new Vector<ArtworkItem>(341);
    artworkItems.add(new ArtworkItem(16, 20, 0x0, "Other-ver111_0.png"));
    artworkItems.add(new ArtworkItem(16, 20, 0x1000, "Other-ver111_1.png"));
    artworkItems.add(new ArtworkItem(320, 480, 0x2000, "Other-ver111_2.png"));
    artworkItems.add(new ArtworkItem(320, 480, 0x98000, "Other-ver111_3.png"));
    artworkItems.add(new ArtworkItem(1, 222, 0x12e000, "Other-ver111_4.png"));
    artworkItems.add(new ArtworkItem(6, 12, 0x130000, "Other-ver111_5.png"));
    artworkItems.add(new ArtworkItem(6, 12, 0x131000, "Other-ver111_6.png"));
    artworkItems.add(new ArtworkItem(6, 12, 0x132000, "Other-ver111_7.png"));
    artworkItems.add(new ArtworkItem(6, 12, 0x133000, "Other-ver111_8.png"));
    artworkItems.add(new ArtworkItem(9, 18, 0x134000, "Other-ver111_9.png"));
    artworkItems.add(new ArtworkItem(9, 18, 0x135000, "Other-ver111_10.png"));
    artworkItems.add(new ArtworkItem(9, 18, 0x136000, "Other-ver111_11.png"));
    artworkItems.add(new ArtworkItem(9, 18, 0x137000, "Other-ver111_12.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x138000, "Other-ver111_13.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x139000, "Other-ver111_14.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x13a000, "Other-ver111_15.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x13b000, "Other-ver111_16.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x13c000, "Other-ver111_17.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x13e000, "Other-ver111_18.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x13f000, "Other-ver111_19.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x140000, "Other-ver111_20.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x141000, "Other-ver111_21.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x142000, "Other-ver111_22.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x143000, "Other-ver111_23.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x145000, "Other-ver111_24.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x146000, "Other-ver111_25.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x147000, "Other-ver111_26.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x148000, "Other-ver111_27.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x149000, "Other-ver111_28.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x14a000, "Other-ver111_29.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x14c000, "Other-ver111_30.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x14d000, "Other-ver111_31.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x14e000, "Other-ver111_32.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x14f000, "Other-ver111_33.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x150000, "Other-ver111_34.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x151000, "Other-ver111_35.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x152000, "Other-ver111_36.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x153000, "Other-ver111_37.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x154000, "Other-ver111_38.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x155000, "Other-ver111_39.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x156000, "Other-ver111_40.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x157000, "Other-ver111_41.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x158000, "Other-ver111_42.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x159000, "Other-ver111_43.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x15a000, "Other-ver111_44.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x15b000, "Other-ver111_45.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x15c000, "Other-ver111_46.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x15d000, "Other-ver111_47.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x15f000, "Other-ver111_48.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x160000, "Other-ver111_49.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x161000, "Other-ver111_50.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x162000, "Other-ver111_51.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x163000, "Other-ver111_52.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x164000, "Other-ver111_53.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x166000, "Other-ver111_54.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x167000, "Other-ver111_55.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x168000, "Other-ver111_56.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x169000, "Other-ver111_57.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x16a000, "Other-ver111_58.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x16b000, "Other-ver111_59.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x16d000, "Other-ver111_60.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x16e000, "Other-ver111_61.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x16f000, "Other-ver111_62.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x170000, "Other-ver111_63.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x171000, "Other-ver111_64.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x172000, "Other-ver111_65.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x174000, "Other-ver111_66.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x175000, "Other-ver111_67.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x176000, "Other-ver111_68.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x177000, "Other-ver111_69.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x178000, "Other-ver111_70.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x179000, "Other-ver111_71.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x17b000, "Other-ver111_72.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x17c000, "Other-ver111_73.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x17d000, "Other-ver111_74.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x17e000, "Other-ver111_75.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x17f000, "Other-ver111_76.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x180000, "Other-ver111_77.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x182000, "Other-ver111_78.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x183000, "Other-ver111_79.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x184000, "Other-ver111_80.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x185000, "Other-ver111_81.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x186000, "Other-ver111_82.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x187000, "Other-ver111_83.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x189000, "Other-ver111_84.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x18a000, "Other-ver111_85.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x18b000, "Other-ver111_86.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x18c000, "Other-ver111_87.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x18d000, "Other-ver111_88.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x18e000, "Other-ver111_89.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x190000, "Other-ver111_90.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x191000, "Other-ver111_91.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x192000, "Other-ver111_92.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x193000, "Other-ver111_93.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x194000, "Other-ver111_94.png"));
    artworkItems.add(new ArtworkItem(37, 37, 0x195000, "Other-ver111_95.png"));
    artworkItems.add(new ArtworkItem(14, 15, 0x197000, "Other-ver111_96.png"));
    artworkItems.add(new ArtworkItem(1, 22, 0x198000, "Other-ver111_97.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x199000, "Other-ver111_98.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x19b000, "Other-ver111_99.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x19d000, "Other-ver111_100.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x19f000, "Other-ver111_101.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x1a1000, "Other-ver111_102.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x1a3000, "Other-ver111_103.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x1a5000, "Other-ver111_104.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x1a7000, "Other-ver111_105.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x1a8000, "Other-ver111_106.png"));
    artworkItems.add(new ArtworkItem(27, 46, 0x1aa000, "Other-ver111_107.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x1ac000, "Other-ver111_108.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x1ae000, "Other-ver111_109.png"));
    artworkItems.add(new ArtworkItem(25, 46, 0x1b0000, "Other-ver111_110.png"));
    artworkItems.add(new ArtworkItem(280, 2, 0x1b2000, "Other-ver111_111.png"));
    artworkItems.add(new ArtworkItem(3, 31, 0x1b3000, "Other-ver111_112.png"));
    artworkItems.add(new ArtworkItem(22, 23, 0x1b4000, "Other-ver111_113.png"));
    artworkItems.add(new ArtworkItem(27, 28, 0x1b5000, "Other-ver111_114.png"));
    artworkItems.add(new ArtworkItem(27, 28, 0x1b6000, "Other-ver111_115.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x1b7000, "Other-ver111_116.png"));
    artworkItems.add(new ArtworkItem(1, 49, 0x1b8000, "Other-ver111_117.png"));
    artworkItems.add(new ArtworkItem(11, 24, 0x1b9000, "Other-ver111_118.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x1ba000, "Other-ver111_119.png"));
    artworkItems.add(new ArtworkItem(1, 32, 0x1bb000, "Other-ver111_120.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0x1bc000, "Other-ver111_121.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1bd000, "Other-ver111_122.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1bf000, "Other-ver111_123.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1c1000, "Other-ver111_124.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1c3000, "Other-ver111_125.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1c5000, "Other-ver111_126.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1c7000, "Other-ver111_127.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1c9000, "Other-ver111_128.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1cb000, "Other-ver111_129.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1cd000, "Other-ver111_130.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1cf000, "Other-ver111_131.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1d1000, "Other-ver111_132.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1d3000, "Other-ver111_133.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1d5000, "Other-ver111_134.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1d7000, "Other-ver111_135.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1d9000, "Other-ver111_136.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1db000, "Other-ver111_137.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1dd000, "Other-ver111_138.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1df000, "Other-ver111_139.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1e1000, "Other-ver111_140.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1e3000, "Other-ver111_141.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1e5000, "Other-ver111_142.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1e7000, "Other-ver111_143.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1e9000, "Other-ver111_144.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1eb000, "Other-ver111_145.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1ed000, "Other-ver111_146.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1ef000, "Other-ver111_147.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1f1000, "Other-ver111_148.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1f3000, "Other-ver111_149.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1f5000, "Other-ver111_150.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1f7000, "Other-ver111_151.png"));
    artworkItems.add(new ArtworkItem(31, 36, 0x1f9000, "Other-ver111_152.png"));
    artworkItems.add(new ArtworkItem(18, 19, 0x1fb000, "Other-ver111_153.png"));
    artworkItems.add(new ArtworkItem(11, 24, 0x1fc000, "Other-ver111_154.png"));
    artworkItems.add(new ArtworkItem(11, 24, 0x1fd000, "Other-ver111_155.png"));
    artworkItems.add(new ArtworkItem(16, 17, 0x1fe000, "Other-ver111_156.png"));
    artworkItems.add(new ArtworkItem(100, 100, 0x1ff000, "Other-ver111_157.png"));
    artworkItems.add(new ArtworkItem(7, 7, 0x20a000, "Other-ver111_158.png"));
    artworkItems.add(new ArtworkItem(18, 19, 0x20b000, "Other-ver111_159.png"));
    artworkItems.add(new ArtworkItem(18, 19, 0x20c000, "Other-ver111_160.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x20d000, "Other-ver111_161.png"));
    artworkItems.add(new ArtworkItem(1, 57, 0x20e000, "Other-ver111_162.png"));
    artworkItems.add(new ArtworkItem(41, 70, 0x20f000, "Other-ver111_163.png"));
    artworkItems.add(new ArtworkItem(17, 57, 0x213000, "Other-ver111_164.png"));
    artworkItems.add(new ArtworkItem(17, 57, 0x215000, "Other-ver111_165.png"));
    artworkItems.add(new ArtworkItem(41, 70, 0x217000, "Other-ver111_166.png"));
    artworkItems.add(new ArtworkItem(3, 19, 0x21b000, "Other-ver111_167.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x21c000, "Other-ver111_168.png"));
    artworkItems.add(new ArtworkItem(1, 96, 0x21d000, "Other-ver111_169.png"));
    artworkItems.add(new ArtworkItem(13, 16, 0x21e000, "Other-ver111_170.png"));
    artworkItems.add(new ArtworkItem(23, 19, 0x21f000, "Other-ver111_171.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0x220000, "Other-ver111_172.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x221000, "Other-ver111_173.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0x222000, "Other-ver111_174.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x223000, "Other-ver111_175.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x224000, "Other-ver111_176.png"));
    artworkItems.add(new ArtworkItem(1, 74, 0x225000, "Other-ver111_177.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0x226000, "Other-ver111_178.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x227000, "Other-ver111_179.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x228000, "Other-ver111_180.png"));
    artworkItems.add(new ArtworkItem(1, 74, 0x229000, "Other-ver111_181.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0x22a000, "Other-ver111_182.png"));
    artworkItems.add(new ArtworkItem(21, 30, 0x22b000, "Other-ver111_183.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x22c000, "Other-ver111_184.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x22d000, "Other-ver111_185.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x22e000, "Other-ver111_186.png"));
    artworkItems.add(new ArtworkItem(1, 74, 0x22f000, "Other-ver111_187.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x230000, "Other-ver111_188.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x231000, "Other-ver111_189.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x232000, "Other-ver111_190.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x233000, "Other-ver111_191.png"));
    artworkItems.add(new ArtworkItem(6, 6, 0x234000, "Other-ver111_192.png"));
    artworkItems.add(new ArtworkItem(6, 6, 0x235000, "Other-ver111_193.png"));
    artworkItems.add(new ArtworkItem(62, 52, 0x236000, "Other-ver111_194.png"));
    artworkItems.add(new ArtworkItem(11, 53, 0x23a000, "Other-ver111_195.png"));
    artworkItems.add(new ArtworkItem(15, 39, 0x23b000, "Other-ver111_196.png"));
    artworkItems.add(new ArtworkItem(18, 18, 0x23c000, "Other-ver111_197.png"));
    artworkItems.add(new ArtworkItem(1, 180, 0x23d000, "Other-ver111_198.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x23f000, "Other-ver111_199.png"));
    artworkItems.add(new ArtworkItem(15, 180, 0x241000, "Other-ver111_200.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x244000, "Other-ver111_201.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x248000, "Other-ver111_202.png"));
    artworkItems.add(new ArtworkItem(1, 180, 0x24c000, "Other-ver111_203.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x24e000, "Other-ver111_204.png"));
    artworkItems.add(new ArtworkItem(15, 180, 0x250000, "Other-ver111_205.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x253000, "Other-ver111_206.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x257000, "Other-ver111_207.png"));
    artworkItems.add(new ArtworkItem(9, 44, 0x25b000, "Other-ver111_208.png"));
    artworkItems.add(new ArtworkItem(1, 48, 0x25c000, "Other-ver111_209.png"));
    artworkItems.add(new ArtworkItem(1, 62, 0x25d000, "Other-ver111_210.png"));
    artworkItems.add(new ArtworkItem(1, 180, 0x25e000, "Other-ver111_211.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x260000, "Other-ver111_212.png"));
    artworkItems.add(new ArtworkItem(9, 180, 0x262000, "Other-ver111_213.png"));
    artworkItems.add(new ArtworkItem(9, 216, 0x265000, "Other-ver111_214.png"));
    artworkItems.add(new ArtworkItem(7, 1, 0x269000, "Other-ver111_215.png"));
    artworkItems.add(new ArtworkItem(19, 46, 0x26a000, "Other-ver111_216.png"));
    artworkItems.add(new ArtworkItem(19, 46, 0x26c000, "Other-ver111_217.png"));
    artworkItems.add(new ArtworkItem(11, 14, 0x26e000, "Other-ver111_218.png"));
    artworkItems.add(new ArtworkItem(284, 62, 0x26f000, "Other-ver111_219.png"));
    artworkItems.add(new ArtworkItem(11, 43, 0x281000, "Other-ver111_220.png"));
    artworkItems.add(new ArtworkItem(11, 43, 0x282000, "Other-ver111_221.png"));
    artworkItems.add(new ArtworkItem(11, 43, 0x283000, "Other-ver111_222.png"));
    artworkItems.add(new ArtworkItem(14, 14, 0x284000, "Other-ver111_223.png"));
    artworkItems.add(new ArtworkItem(13, 44, 0x285000, "Other-ver111_224.png"));
    artworkItems.add(new ArtworkItem(13, 44, 0x286000, "Other-ver111_225.png"));
    artworkItems.add(new ArtworkItem(14, 14, 0x287000, "Other-ver111_226.png"));
    artworkItems.add(new ArtworkItem(15, 11, 0x288000, "Other-ver111_227.png"));
    artworkItems.add(new ArtworkItem(14, 14, 0x289000, "Other-ver111_228.png"));
    artworkItems.add(new ArtworkItem(29, 29, 0x28a000, "Other-ver111_229.png"));
    artworkItems.add(new ArtworkItem(13, 3, 0x28b000, "Other-ver111_230.png"));
    artworkItems.add(new ArtworkItem(29, 29, 0x28c000, "Other-ver111_231.png"));
    artworkItems.add(new ArtworkItem(17, 33, 0x28d000, "Other-ver111_232.png"));
    artworkItems.add(new ArtworkItem(17, 33, 0x28e000, "Other-ver111_233.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x28f000, "Other-ver111_234.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x290000, "Other-ver111_235.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x291000, "Other-ver111_236.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x292000, "Other-ver111_237.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x293000, "Other-ver111_238.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x294000, "Other-ver111_239.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x295000, "Other-ver111_240.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x296000, "Other-ver111_241.png"));
    artworkItems.add(new ArtworkItem(8, 31, 0x297000, "Other-ver111_242.png"));
    artworkItems.add(new ArtworkItem(5, 5, 0x298000, "Other-ver111_243.png"));
    artworkItems.add(new ArtworkItem(7, 7, 0x299000, "Other-ver111_244.png"));
    artworkItems.add(new ArtworkItem(5, 5, 0x29a000, "Other-ver111_245.png"));
    artworkItems.add(new ArtworkItem(54, 54, 0x29b000, "Other-ver111_246.png"));
    artworkItems.add(new ArtworkItem(1, 30, 0x29e000, "Other-ver111_247.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x29f000, "Other-ver111_248.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x2a0000, "Other-ver111_249.png"));
    artworkItems.add(new ArtworkItem(1, 9, 0x2a1000, "Other-ver111_250.png"));
    artworkItems.add(new ArtworkItem(1, 8, 0x2a2000, "Other-ver111_251.png"));
    artworkItems.add(new ArtworkItem(4, 8, 0x2a3000, "Other-ver111_252.png"));
    artworkItems.add(new ArtworkItem(4, 8, 0x2a4000, "Other-ver111_253.png"));
    artworkItems.add(new ArtworkItem(17, 18, 0x2a5000, "Other-ver111_254.png"));
    artworkItems.add(new ArtworkItem(22, 24, 0x2a6000, "Other-ver111_255.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x2a7000, "Other-ver111_256.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x2a8000, "Other-ver111_257.png"));
    artworkItems.add(new ArtworkItem(1, 9, 0x2a9000, "Other-ver111_258.png"));
    artworkItems.add(new ArtworkItem(15, 15, 0x2aa000, "Other-ver111_259.png"));
    artworkItems.add(new ArtworkItem(17, 31, 0x2ab000, "Other-ver111_260.png"));
    artworkItems.add(new ArtworkItem(17, 31, 0x2ac000, "Other-ver111_261.png"));
    artworkItems.add(new ArtworkItem(17, 32, 0x2ad000, "Other-ver111_262.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x2ae000, "Other-ver111_263.png"));
    artworkItems.add(new ArtworkItem(1, 31, 0x2af000, "Other-ver111_264.png"));
    artworkItems.add(new ArtworkItem(1, 32, 0x2b0000, "Other-ver111_265.png"));
    artworkItems.add(new ArtworkItem(17, 31, 0x2b1000, "Other-ver111_266.png"));
    artworkItems.add(new ArtworkItem(17, 31, 0x2b2000, "Other-ver111_267.png"));
    artworkItems.add(new ArtworkItem(17, 32, 0x2b3000, "Other-ver111_268.png"));
    artworkItems.add(new ArtworkItem(1, 23, 0x2b4000, "Other-ver111_269.png"));
    artworkItems.add(new ArtworkItem(1, 23, 0x2b5000, "Other-ver111_270.png"));
    artworkItems.add(new ArtworkItem(8, 10, 0x2b6000, "Other-ver111_271.png"));
    artworkItems.add(new ArtworkItem(13, 30, 0x2b7000, "Other-ver111_272.png"));
    artworkItems.add(new ArtworkItem(1, 30, 0x2b8000, "Other-ver111_273.png"));
    artworkItems.add(new ArtworkItem(6, 30, 0x2b9000, "Other-ver111_274.png"));
    artworkItems.add(new ArtworkItem(6, 30, 0x2ba000, "Other-ver111_275.png"));
    artworkItems.add(new ArtworkItem(1, 30, 0x2bb000, "Other-ver111_276.png"));
    artworkItems.add(new ArtworkItem(1, 30, 0x2bc000, "Other-ver111_277.png"));
    artworkItems.add(new ArtworkItem(21, 44, 0x2bd000, "Other-ver111_278.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x2bf000, "Other-ver111_279.png"));
    artworkItems.add(new ArtworkItem(10, 44, 0x2c0000, "Other-ver111_280.png"));
    artworkItems.add(new ArtworkItem(10, 44, 0x2c1000, "Other-ver111_281.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x2c2000, "Other-ver111_282.png"));
    artworkItems.add(new ArtworkItem(6, 44, 0x2c3000, "Other-ver111_283.png"));
    artworkItems.add(new ArtworkItem(6, 44, 0x2c4000, "Other-ver111_284.png"));
    artworkItems.add(new ArtworkItem(21, 44, 0x2c5000, "Other-ver111_285.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x2c7000, "Other-ver111_286.png"));
    artworkItems.add(new ArtworkItem(10, 44, 0x2c8000, "Other-ver111_287.png"));
    artworkItems.add(new ArtworkItem(10, 44, 0x2c9000, "Other-ver111_288.png"));
    artworkItems.add(new ArtworkItem(1, 44, 0x2ca000, "Other-ver111_289.png"));
    artworkItems.add(new ArtworkItem(6, 44, 0x2cb000, "Other-ver111_290.png"));
    artworkItems.add(new ArtworkItem(6, 44, 0x2cc000, "Other-ver111_291.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x2cd000, "Other-ver111_292.png"));
    artworkItems.add(new ArtworkItem(1, 9, 0x2ce000, "Other-ver111_293.png"));
    artworkItems.add(new ArtworkItem(23, 23, 0x2cf000, "Other-ver111_294.png"));
    artworkItems.add(new ArtworkItem(23, 23, 0x2d0000, "Other-ver111_295.png"));
    artworkItems.add(new ArtworkItem(5, 9, 0x2d1000, "Other-ver111_296.png"));
    artworkItems.add(new ArtworkItem(1, 9, 0x2d2000, "Other-ver111_297.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x2d3000, "Other-ver111_298.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x2d4000, "Other-ver111_299.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x2d5000, "Other-ver111_300.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x2d6000, "Other-ver111_301.png"));
    artworkItems.add(new ArtworkItem(8, 27, 0x2d7000, "Other-ver111_302.png"));
    artworkItems.add(new ArtworkItem(8, 27, 0x2d8000, "Other-ver111_303.png"));
    artworkItems.add(new ArtworkItem(14, 16, 0x2d9000, "Other-ver111_304.png"));
    artworkItems.add(new ArtworkItem(2, 16, 0x2da000, "Other-ver111_305.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x2db000, "Other-ver111_306.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x2dc000, "Other-ver111_307.png"));
    artworkItems.add(new ArtworkItem(8, 27, 0x2dd000, "Other-ver111_308.png"));
    artworkItems.add(new ArtworkItem(8, 27, 0x2de000, "Other-ver111_309.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x2df000, "Other-ver111_310.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x2e0000, "Other-ver111_311.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x2e1000, "Other-ver111_312.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x2e2000, "Other-ver111_313.png"));
    artworkItems.add(new ArtworkItem(5, 27, 0x2e3000, "Other-ver111_314.png"));
    artworkItems.add(new ArtworkItem(1, 27, 0x2e4000, "Other-ver111_315.png"));
    artworkItems.add(new ArtworkItem(3, 19, 0x2e5000, "Other-ver111_316.png"));
    artworkItems.add(new ArtworkItem(3, 19, 0x2e6000, "Other-ver111_317.png"));
    artworkItems.add(new ArtworkItem(19, 17, 0x2e7000, "Other-ver111_318.png"));
    artworkItems.add(new ArtworkItem(10, 13, 0x2e8000, "Other-ver111_319.png"));
    artworkItems.add(new ArtworkItem(29, 31, 0x2e9000, "Other-ver111_320.png"));
    artworkItems.add(new ArtworkItem(29, 31, 0x2ea000, "Other-ver111_321.png"));
    artworkItems.add(new ArtworkItem(10, 13, 0x2eb000, "Other-ver111_322.png"));
    artworkItems.add(new ArtworkItem(1, 43, 0x2ec000, "Other-ver111_323.png"));
    artworkItems.add(new ArtworkItem(1, 43, 0x2ed000, "Other-ver111_324.png"));
    artworkItems.add(new ArtworkItem(1, 43, 0x2ee000, "Other-ver111_325.png"));
    artworkItems.add(new ArtworkItem(1, 43, 0x2ef000, "Other-ver111_326.png"));
    artworkItems.add(new ArtworkItem(1, 43, 0x2f0000, "Other-ver111_327.png"));
    artworkItems.add(new ArtworkItem(19, 19, 0x2f1000, "Other-ver111_328.png"));
    artworkItems.add(new ArtworkItem(19, 19, 0x2f2000, "Other-ver111_329.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x2f3000, "Other-ver111_330.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x2f5000, "Other-ver111_331.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x2f9000, "Other-ver111_332.png"));
    artworkItems.add(new ArtworkItem(15, 216, 0x2fb000, "Other-ver111_333.png"));
    artworkItems.add(new ArtworkItem(9, 44, 0x2ff000, "Other-ver111_334.png"));
    artworkItems.add(new ArtworkItem(1, 48, 0x300000, "Other-ver111_335.png"));
    artworkItems.add(new ArtworkItem(1, 62, 0x301000, "Other-ver111_336.png"));
    artworkItems.add(new ArtworkItem(1, 216, 0x302000, "Other-ver111_337.png"));
    artworkItems.add(new ArtworkItem(9, 216, 0x304000, "Other-ver111_338.png"));
    artworkItems.add(new ArtworkItem(13, 13, 0x308000, "Other-ver111_339.png"));
    artworkItems.add(new ArtworkItem(24, 26, 0x309000, "Other-ver111_340.png"));
  }
  private void initKeyboard_Japanese_ver111() {
    artworkItems = new Vector<ArtworkItem>(46);
    artworkItems.add(new ArtworkItem(80, 29, 0x0, "Keyboard_Japanese-ver111_0.png"));
    artworkItems.add(new ArtworkItem(43, 29, 0x3000, "Keyboard_Japanese-ver111_1.png"));
    artworkItems.add(new ArtworkItem(43, 28, 0x5000, "Keyboard_Japanese-ver111_2.png"));
    artworkItems.add(new ArtworkItem(80, 29, 0x7000, "Keyboard_Japanese-ver111_3.png"));
    artworkItems.add(new ArtworkItem(43, 29, 0xa000, "Keyboard_Japanese-ver111_4.png"));
    artworkItems.add(new ArtworkItem(43, 29, 0xc000, "Keyboard_Japanese-ver111_5.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0xe000, "Keyboard_Japanese-ver111_6.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x11000, "Keyboard_Japanese-ver111_7.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x14000, "Keyboard_Japanese-ver111_8.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x17000, "Keyboard_Japanese-ver111_9.png"));
    artworkItems.add(new ArtworkItem(36, 32, 0x1a000, "Keyboard_Japanese-ver111_10.png"));
    artworkItems.add(new ArtworkItem(41, 36, 0x1c000, "Keyboard_Japanese-ver111_11.png"));
    artworkItems.add(new ArtworkItem(37, 29, 0x1e000, "Keyboard_Japanese-ver111_12.png"));
    artworkItems.add(new ArtworkItem(37, 28, 0x20000, "Keyboard_Japanese-ver111_13.png"));
    artworkItems.add(new ArtworkItem(37, 29, 0x22000, "Keyboard_Japanese-ver111_14.png"));
    artworkItems.add(new ArtworkItem(37, 28, 0x24000, "Keyboard_Japanese-ver111_15.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x26000, "Keyboard_Japanese-ver111_16.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x29000, "Keyboard_Japanese-ver111_17.png"));
    artworkItems.add(new ArtworkItem(74, 23, 0x2c000, "Keyboard_Japanese-ver111_18.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x2e000, "Keyboard_Japanese-ver111_19.png"));
    artworkItems.add(new ArtworkItem(74, 23, 0x31000, "Keyboard_Japanese-ver111_20.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x33000, "Keyboard_Japanese-ver111_21.png"));
    artworkItems.add(new ArtworkItem(13, 26, 0x36000, "Keyboard_Japanese-ver111_22.png"));
    artworkItems.add(new ArtworkItem(13, 26, 0x37000, "Keyboard_Japanese-ver111_23.png"));
    artworkItems.add(new ArtworkItem(1, 26, 0x38000, "Keyboard_Japanese-ver111_24.png"));
    artworkItems.add(new ArtworkItem(1, 26, 0x39000, "Keyboard_Japanese-ver111_25.png"));
    artworkItems.add(new ArtworkItem(7, 11, 0x3a000, "Keyboard_Japanese-ver111_26.png"));
    artworkItems.add(new ArtworkItem(17, 66, 0x3b000, "Keyboard_Japanese-ver111_27.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x3d000, "Keyboard_Japanese-ver111_28.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x81000, "Keyboard_Japanese-ver111_29.png"));
    artworkItems.add(new ArtworkItem(7, 11, 0xc5000, "Keyboard_Japanese-ver111_30.png"));
    artworkItems.add(new ArtworkItem(17, 66, 0xc6000, "Keyboard_Japanese-ver111_31.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xc8000, "Keyboard_Japanese-ver111_32.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x10c000, "Keyboard_Japanese-ver111_33.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x150000, "Keyboard_Japanese-ver111_34.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x194000, "Keyboard_Japanese-ver111_35.png"));
    artworkItems.add(new ArtworkItem(74, 23, 0x1d8000, "Keyboard_Japanese-ver111_36.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x1da000, "Keyboard_Japanese-ver111_37.png"));
    artworkItems.add(new ArtworkItem(13, 26, 0x1dd000, "Keyboard_Japanese-ver111_38.png"));
    artworkItems.add(new ArtworkItem(13, 26, 0x1de000, "Keyboard_Japanese-ver111_39.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x1df000, "Keyboard_Japanese-ver111_40.png"));
    artworkItems.add(new ArtworkItem(79, 28, 0x1e2000, "Keyboard_Japanese-ver111_41.png"));
    artworkItems.add(new ArtworkItem(154, 23, 0x1e5000, "Keyboard_Japanese-ver111_42.png"));
    artworkItems.add(new ArtworkItem(158, 28, 0x1e9000, "Keyboard_Japanese-ver111_43.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x1ee000, "Keyboard_Japanese-ver111_44.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x232000, "Keyboard_Japanese-ver111_45.png"));
  }
  private void initKeyboard_Latin_ver111() {
    artworkItems = new Vector<ArtworkItem>(102);
    artworkItems.add(new ArtworkItem(30, 42, 0x0, "Keyboard_Latin-ver111_0.png"));
    artworkItems.add(new ArtworkItem(30, 42, 0x2000, "Keyboard_Latin-ver111_1.png"));
    artworkItems.add(new ArtworkItem(85, 130, 0x4000, "Keyboard_Latin-ver111_2.png"));
    artworkItems.add(new ArtworkItem(95, 130, 0x10000, "Keyboard_Latin-ver111_3.png"));
    artworkItems.add(new ArtworkItem(105, 115, 0x1d000, "Keyboard_Latin-ver111_4.png"));
    artworkItems.add(new ArtworkItem(114, 130, 0x2a000, "Keyboard_Latin-ver111_5.png"));
    artworkItems.add(new ArtworkItem(85, 130, 0x3a000, "Keyboard_Latin-ver111_6.png"));
    artworkItems.add(new ArtworkItem(95, 130, 0x46000, "Keyboard_Latin-ver111_7.png"));
    artworkItems.add(new ArtworkItem(27, 81, 0x53000, "Keyboard_Latin-ver111_8.png"));
    artworkItems.add(new ArtworkItem(82, 130, 0x56000, "Keyboard_Latin-ver111_9.png"));
    artworkItems.add(new ArtworkItem(1, 81, 0x62000, "Keyboard_Latin-ver111_10.png"));
    artworkItems.add(new ArtworkItem(91, 130, 0x63000, "Keyboard_Latin-ver111_11.png"));
    artworkItems.add(new ArtworkItem(94, 130, 0x70000, "Keyboard_Latin-ver111_12.png"));
    artworkItems.add(new ArtworkItem(27, 81, 0x7d000, "Keyboard_Latin-ver111_13.png"));
    artworkItems.add(new ArtworkItem(82, 130, 0x80000, "Keyboard_Latin-ver111_14.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x8c000, "Keyboard_Latin-ver111_15.png"));
    artworkItems.add(new ArtworkItem(83, 120, 0xd0000, "Keyboard_Latin-ver111_16.png"));
    artworkItems.add(new ArtworkItem(91, 120, 0xdb000, "Keyboard_Latin-ver111_17.png"));
    artworkItems.add(new ArtworkItem(88, 120, 0xe7000, "Keyboard_Latin-ver111_18.png"));
    artworkItems.add(new ArtworkItem(79, 120, 0xf2000, "Keyboard_Latin-ver111_19.png"));
    artworkItems.add(new ArtworkItem(114, 125, 0xfc000, "Keyboard_Latin-ver111_20.png"));
    artworkItems.add(new ArtworkItem(79, 126, 0x10b000, "Keyboard_Latin-ver111_21.png"));
    artworkItems.add(new ArtworkItem(78, 126, 0x115000, "Keyboard_Latin-ver111_22.png"));
    artworkItems.add(new ArtworkItem(220, 500, 0x11f000, "Keyboard_Latin-ver111_23.png"));
    artworkItems.add(new ArtworkItem(132, 750, 0x18d000, "Keyboard_Latin-ver111_24.png"));
    artworkItems.add(new ArtworkItem(132, 750, 0x1f1000, "Keyboard_Latin-ver111_25.png"));
    artworkItems.add(new ArtworkItem(176, 500, 0x255000, "Keyboard_Latin-ver111_26.png"));
    artworkItems.add(new ArtworkItem(132, 500, 0x2ab000, "Keyboard_Latin-ver111_27.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x2ee000, "Keyboard_Latin-ver111_28.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x343000, "Keyboard_Latin-ver111_29.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x398000, "Keyboard_Latin-ver111_30.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x3dc000, "Keyboard_Latin-ver111_31.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x420000, "Keyboard_Latin-ver111_32.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x464000, "Keyboard_Latin-ver111_33.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x4a8000, "Keyboard_Latin-ver111_34.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x4ec000, "Keyboard_Latin-ver111_35.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x530000, "Keyboard_Latin-ver111_36.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x574000, "Keyboard_Latin-ver111_37.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x5b8000, "Keyboard_Latin-ver111_38.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x5fc000, "Keyboard_Latin-ver111_39.png"));
    artworkItems.add(new ArtworkItem(43, 43, 0x640000, "Keyboard_Latin-ver111_40.png"));
    artworkItems.add(new ArtworkItem(43, 43, 0x643000, "Keyboard_Latin-ver111_41.png"));
    artworkItems.add(new ArtworkItem(37, 43, 0x646000, "Keyboard_Latin-ver111_42.png"));
    artworkItems.add(new ArtworkItem(37, 43, 0x648000, "Keyboard_Latin-ver111_43.png"));
    artworkItems.add(new ArtworkItem(1, 41, 0x64a000, "Keyboard_Latin-ver111_44.png"));
    artworkItems.add(new ArtworkItem(1, 37, 0x64b000, "Keyboard_Latin-ver111_45.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x64c000, "Keyboard_Latin-ver111_46.png"));
    artworkItems.add(new ArtworkItem(103, 120, 0x6a1000, "Keyboard_Latin-ver111_47.png"));
    artworkItems.add(new ArtworkItem(115, 120, 0x6ae000, "Keyboard_Latin-ver111_48.png"));
    artworkItems.add(new ArtworkItem(126, 120, 0x6bd000, "Keyboard_Latin-ver111_49.png"));
    artworkItems.add(new ArtworkItem(99, 120, 0x6cc000, "Keyboard_Latin-ver111_50.png"));
    artworkItems.add(new ArtworkItem(110, 126, 0x6d9000, "Keyboard_Latin-ver111_51.png"));
    artworkItems.add(new ArtworkItem(85, 126, 0x6e7000, "Keyboard_Latin-ver111_52.png"));
    artworkItems.add(new ArtworkItem(85, 126, 0x6f2000, "Keyboard_Latin-ver111_53.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x6fd000, "Keyboard_Latin-ver111_54.png"));
    artworkItems.add(new ArtworkItem(52, 43, 0x752000, "Keyboard_Latin-ver111_55.png"));
    artworkItems.add(new ArtworkItem(52, 43, 0x755000, "Keyboard_Latin-ver111_56.png"));
    artworkItems.add(new ArtworkItem(47, 43, 0x758000, "Keyboard_Latin-ver111_57.png"));
    artworkItems.add(new ArtworkItem(47, 43, 0x75b000, "Keyboard_Latin-ver111_58.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x75e000, "Keyboard_Latin-ver111_59.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x7b3000, "Keyboard_Latin-ver111_60.png"));
    artworkItems.add(new ArtworkItem(76, 45, 0x808000, "Keyboard_Latin-ver111_61.png"));
    artworkItems.add(new ArtworkItem(76, 45, 0x80c000, "Keyboard_Latin-ver111_62.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0x810000, "Keyboard_Latin-ver111_63.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x865000, "Keyboard_Latin-ver111_64.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x8a9000, "Keyboard_Latin-ver111_65.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x8ed000, "Keyboard_Latin-ver111_66.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x931000, "Keyboard_Latin-ver111_67.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x975000, "Keyboard_Latin-ver111_68.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x9b9000, "Keyboard_Latin-ver111_69.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0x9fd000, "Keyboard_Latin-ver111_70.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xa41000, "Keyboard_Latin-ver111_71.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xa85000, "Keyboard_Latin-ver111_72.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xac9000, "Keyboard_Latin-ver111_73.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xb0d000, "Keyboard_Latin-ver111_74.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xb51000, "Keyboard_Latin-ver111_75.png"));
    artworkItems.add(new ArtworkItem(40, 41, 0xb95000, "Keyboard_Latin-ver111_76.png"));
    artworkItems.add(new ArtworkItem(40, 41, 0xb97000, "Keyboard_Latin-ver111_77.png"));
    artworkItems.add(new ArtworkItem(40, 41, 0xb99000, "Keyboard_Latin-ver111_78.png"));
    artworkItems.add(new ArtworkItem(40, 41, 0xb9b000, "Keyboard_Latin-ver111_79.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xb9d000, "Keyboard_Latin-ver111_80.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xbe1000, "Keyboard_Latin-ver111_81.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xc25000, "Keyboard_Latin-ver111_82.png"));
    artworkItems.add(new ArtworkItem(4, 36, 0xc69000, "Keyboard_Latin-ver111_83.png"));
    artworkItems.add(new ArtworkItem(4, 36, 0xc6a000, "Keyboard_Latin-ver111_84.png"));
    artworkItems.add(new ArtworkItem(80, 44, 0xc6b000, "Keyboard_Latin-ver111_85.png"));
    artworkItems.add(new ArtworkItem(80, 44, 0xc6f000, "Keyboard_Latin-ver111_86.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xc73000, "Keyboard_Latin-ver111_87.png"));
    artworkItems.add(new ArtworkItem(43, 43, 0xcb7000, "Keyboard_Latin-ver111_88.png"));
    artworkItems.add(new ArtworkItem(43, 43, 0xcba000, "Keyboard_Latin-ver111_89.png"));
    artworkItems.add(new ArtworkItem(37, 43, 0xcbd000, "Keyboard_Latin-ver111_90.png"));
    artworkItems.add(new ArtworkItem(37, 43, 0xcbf000, "Keyboard_Latin-ver111_91.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xcc1000, "Keyboard_Latin-ver111_92.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xd05000, "Keyboard_Latin-ver111_93.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0xd49000, "Keyboard_Latin-ver111_94.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0xd9e000, "Keyboard_Latin-ver111_95.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xdf3000, "Keyboard_Latin-ver111_96.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xe37000, "Keyboard_Latin-ver111_97.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0xe7b000, "Keyboard_Latin-ver111_98.png"));
    artworkItems.add(new ArtworkItem(480, 180, 0xed0000, "Keyboard_Latin-ver111_99.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xf25000, "Keyboard_Latin-ver111_100.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xf69000, "Keyboard_Latin-ver111_101.png"));
  }
  private void initKeyboard_Common_ver111() {
    artworkItems = new Vector<ArtworkItem>(26);
    artworkItems.add(new ArtworkItem(148, 148, 0x0, "Keyboard_Common-ver111_0.png"));
    artworkItems.add(new ArtworkItem(148, 148, 0x16000, "Keyboard_Common-ver111_1.png"));
    artworkItems.add(new ArtworkItem(8, 8, 0x2c000, "Keyboard_Common-ver111_2.png"));
    artworkItems.add(new ArtworkItem(16, 31, 0x2d000, "Keyboard_Common-ver111_3.png"));
    artworkItems.add(new ArtworkItem(16, 31, 0x2e000, "Keyboard_Common-ver111_4.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x2f000, "Keyboard_Common-ver111_5.png"));
    artworkItems.add(new ArtworkItem(11, 30, 0x30000, "Keyboard_Common-ver111_6.png"));
    artworkItems.add(new ArtworkItem(98, 42, 0x31000, "Keyboard_Common-ver111_7.png"));
    artworkItems.add(new ArtworkItem(98, 42, 0x36000, "Keyboard_Common-ver111_8.png"));
    artworkItems.add(new ArtworkItem(98, 42, 0x3b000, "Keyboard_Common-ver111_9.png"));
    artworkItems.add(new ArtworkItem(289, 42, 0x40000, "Keyboard_Common-ver111_10.png"));
    artworkItems.add(new ArtworkItem(289, 42, 0x4d000, "Keyboard_Common-ver111_11.png"));
    artworkItems.add(new ArtworkItem(80, 44, 0x5a000, "Keyboard_Common-ver111_12.png"));
    artworkItems.add(new ArtworkItem(80, 44, 0x5e000, "Keyboard_Common-ver111_13.png"));
    artworkItems.add(new ArtworkItem(80, 44, 0x62000, "Keyboard_Common-ver111_14.png"));
    artworkItems.add(new ArtworkItem(80, 44, 0x66000, "Keyboard_Common-ver111_15.png"));
    artworkItems.add(new ArtworkItem(80, 44, 0x6a000, "Keyboard_Common-ver111_16.png"));
    artworkItems.add(new ArtworkItem(160, 44, 0x6e000, "Keyboard_Common-ver111_17.png"));
    artworkItems.add(new ArtworkItem(160, 44, 0x75000, "Keyboard_Common-ver111_18.png"));
    artworkItems.add(new ArtworkItem(160, 44, 0x7c000, "Keyboard_Common-ver111_19.png"));
    artworkItems.add(new ArtworkItem(160, 44, 0x83000, "Keyboard_Common-ver111_20.png"));
    artworkItems.add(new ArtworkItem(127, 127, 0x8a000, "Keyboard_Common-ver111_21.png"));
    artworkItems.add(new ArtworkItem(127, 127, 0x9a000, "Keyboard_Common-ver111_22.png"));
    artworkItems.add(new ArtworkItem(127, 127, 0xaa000, "Keyboard_Common-ver111_23.png"));
    artworkItems.add(new ArtworkItem(20, 20, 0xba000, "Keyboard_Common-ver111_24.png"));
    artworkItems.add(new ArtworkItem(320, 216, 0xbb000, "Keyboard_Common-ver111_25.png"));
  }
}
